#ifndef H_GUI
#define H_GUI

#include <gtk/gtk.h>

/* "public" functions */
void gui_init(int argc, char** argv);
void gui_run();

/* "private" functions */
GtkWidget* create_winMain();
void show(GtkWidget* widget);
void populate(GtkWidget* widget);

/* events */
static void winMain_show(GtkWidget* widget, GdkEventExpose* e, gpointer data);
static void winMain_close(GtkWidget* window, gpointer data);
static void winMain_got_focus(GtkWidget* window, GdkEvent* e, gpointer data);
static void winMain_lost_focus(GtkWidget* window, GdkEvent* e, gpointer data);
static void winMain_status_change(GtkWidget* widget, GdkEvent* e, gpointer data);
static void winMain_key_down(GtkWidget* widget, GdkEvent* e, gpointer data);
static void winMain_key_up(GtkWidget* widget, GdkEvent* e, gpointer data);
static void winMain_mouse_down(GtkWidget* widget, GdkEventMotion* e, gpointer data);
static void winMain_mouse_up(GtkWidget* widget, GdkEventMotion* e, gpointer data);
static void winMain_mouse_moved(GtkWidget* widget, GdkEventMotion* e, gpointer data);
static void winMain_mouse_scrolled(GtkWidget* widget, GdkEventScroll* e, gpointer data);

#endif
